﻿using System;
using System.Resources;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.Threading;
using System.IO;
using System.Web;
using ITCR.ProyectoAgricola.Datos;
using ITCR.ProyectoAgricola.Base;

namespace ITCR.ProyectoAgricola.Interfaz
{
    public class PDFGenerator

    {
        
        
        Image[] imagenesPequeñas = new Image[10];
        public cEMPRESABase listaEmpresas = new cEMPRESABase();
        public cPERFILBase listaPerfiles = new cPERFILBase();
        public cPDF listaTodos = new cPDF();
        Image[] imagenesHeader = new Image[8];
        public void cargarImagenesHeader()
        {
            //IMG1
            System.Drawing.Image n1 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img1.GetHbitmap());
            iTextSharp.text.Image n11 = iTextSharp.text.Image.GetInstance(n1, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG2
            System.Drawing.Image n2 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img2.GetHbitmap());
            iTextSharp.text.Image n21 = iTextSharp.text.Image.GetInstance(n2, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG3
            System.Drawing.Image n3= System.Drawing.Image.FromHbitmap(Properties.Resources.Img3.GetHbitmap());
            iTextSharp.text.Image n31 = iTextSharp.text.Image.GetInstance(n3, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG4
            System.Drawing.Image n4 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img4.GetHbitmap());
            iTextSharp.text.Image n41 = iTextSharp.text.Image.GetInstance(n4, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG5
            System.Drawing.Image n5 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img5.GetHbitmap());
            iTextSharp.text.Image n51 = iTextSharp.text.Image.GetInstance(n5, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG6
            System.Drawing.Image n6 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img6.GetHbitmap());
            iTextSharp.text.Image n61 = iTextSharp.text.Image.GetInstance(n6, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG7
            System.Drawing.Image n7 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img7.GetHbitmap());
            iTextSharp.text.Image n71 = iTextSharp.text.Image.GetInstance(n7, System.Drawing.Imaging.ImageFormat.Jpeg);

            //IMG1
            System.Drawing.Image n8 = System.Drawing.Image.FromHbitmap(Properties.Resources.Img8.GetHbitmap());
            iTextSharp.text.Image n81 = iTextSharp.text.Image.GetInstance(n8, System.Drawing.Imaging.ImageFormat.Jpeg);

            imagenesHeader[0] = n11;
            imagenesHeader[1] = n21;
            imagenesHeader[2] = n31;
            imagenesHeader[3] = n41;
            imagenesHeader[4] = n51;
            imagenesHeader[5] = n61;
            imagenesHeader[6] = n71;
            imagenesHeader[7] = n81;
        }

        public void cargarArrego()
        {
            //n1 
            System.Drawing.Image n1 = System.Drawing.Image.FromHbitmap(Properties.Resources.n1.GetHbitmap());
            iTextSharp.text.Image n11 = iTextSharp.text.Image.GetInstance(n1, System.Drawing.Imaging.ImageFormat.Png);

            //n2
            System.Drawing.Image n2 = System.Drawing.Image.FromHbitmap(Properties.Resources.n2.GetHbitmap());
            iTextSharp.text.Image n21 = iTextSharp.text.Image.GetInstance(n2, System.Drawing.Imaging.ImageFormat.Png);

            //n3
            System.Drawing.Image n3 = System.Drawing.Image.FromHbitmap(Properties.Resources.n3.GetHbitmap());
            iTextSharp.text.Image n31 = iTextSharp.text.Image.GetInstance(n3, System.Drawing.Imaging.ImageFormat.Png);

            //n4
            System.Drawing.Image n4 = System.Drawing.Image.FromHbitmap(Properties.Resources.n4.GetHbitmap());
            iTextSharp.text.Image n41 = iTextSharp.text.Image.GetInstance(n4, System.Drawing.Imaging.ImageFormat.Png);

            //n5
            System.Drawing.Image n5 = System.Drawing.Image.FromHbitmap(Properties.Resources.n5.GetHbitmap());
            iTextSharp.text.Image n51 = iTextSharp.text.Image.GetInstance(n5, System.Drawing.Imaging.ImageFormat.Png);

            //n6
            System.Drawing.Image n6 = System.Drawing.Image.FromHbitmap(Properties.Resources.n6.GetHbitmap());
            iTextSharp.text.Image n61 = iTextSharp.text.Image.GetInstance(n6, System.Drawing.Imaging.ImageFormat.Png);

            //n7 
            System.Drawing.Image n7 = System.Drawing.Image.FromHbitmap(Properties.Resources.n7.GetHbitmap());
            iTextSharp.text.Image n71 = iTextSharp.text.Image.GetInstance(n7, System.Drawing.Imaging.ImageFormat.Png);

            //n8
            System.Drawing.Image n8 = System.Drawing.Image.FromHbitmap(Properties.Resources.n8.GetHbitmap());
            iTextSharp.text.Image n81 = iTextSharp.text.Image.GetInstance(n8, System.Drawing.Imaging.ImageFormat.Png);

            //n9
            System.Drawing.Image n9 = System.Drawing.Image.FromHbitmap(Properties.Resources.n9.GetHbitmap());
            iTextSharp.text.Image n91 = iTextSharp.text.Image.GetInstance(n9, System.Drawing.Imaging.ImageFormat.Png);

            //n10 
            System.Drawing.Image n10 = System.Drawing.Image.FromHbitmap(Properties.Resources.n10.GetHbitmap());
            iTextSharp.text.Image n101 = iTextSharp.text.Image.GetInstance(n10, System.Drawing.Imaging.ImageFormat.Png);

            imagenesPequeñas[0] = n11;
            imagenesPequeñas[1] = n21;
            imagenesPequeñas[2] = n31;
            imagenesPequeñas[3] = n41;
            imagenesPequeñas[4] = n51;
            imagenesPequeñas[5] = n61;
            imagenesPequeñas[6] = n71;
            imagenesPequeñas[7] = n81;
            imagenesPequeñas[8] = n91;
            imagenesPequeñas[9] = n101;
        }

        public List<List<string>> crearIndice(DataTable tabla)
        {
            List<string> listaIndiceNombres = new List<string>();
            List<string> listaIndiceNumProyecto = new List<string>();
            List<List<string>> listaIndice = new List<List<string>>();

            int index = 0;
            int numeroProyecto = 1;
            for (int kk = 0; kk < tabla.Rows.Count; kk++)
            {
                if (tabla.Rows.Count == 1)
                {
                    listaIndiceNombres.Add(tabla.Rows[kk][2].ToString());
                    index++;

                    if (!(tabla.Rows[kk][25].Equals("")))//tiene proyectos
                    {
                        listaIndiceNumProyecto.Add(numeroProyecto.ToString());
                    }

                }
                else
                {
                    if (kk == 0)
                    {
                        listaIndiceNombres.Add(tabla.Rows[kk][2].ToString());
                        index++;
                    }
                    else
                    {
                        if (listaIndiceNombres.Count >= 1) //ya la lista tiene alguna empresa
                        {
                            if (listaIndiceNombres[index - 1].Equals(tabla.Rows[kk][2].ToString()))//ya la empresa se encuentra en lista
                            {
                                numeroProyecto++;
                            }
                            else
                            {
                                listaIndiceNombres.Add(tabla.Rows[kk][2].ToString());
                                listaIndiceNumProyecto.Add(numeroProyecto.ToString());
                                numeroProyecto = 1;
                                index++;
                            }
                        }
                    }
                }
            }
            listaIndiceNumProyecto.Add(numeroProyecto.ToString());
            listaIndice.Add(listaIndiceNombres);
            listaIndice.Add(listaIndiceNumProyecto);
            return listaIndice;
        }

        public void Portada()
        {
            //llamar a cargarArreglo
            cargarArrego();
            cargarImagenesHeader();

            HttpContext.Current.Response.Buffer = false;
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.AppendHeader("content-disposition", "attachment;filename=" + "Catálogo.pdf");
            HttpContext.Current.Response.ContentType = "Application/pdf";



            Document document = new Document();
            //creamos el documento
            //...ahora configuramos para que el tamaño de hoja sea A4
            document = new Document(iTextSharp.text.PageSize.A4);
            // document.PageSize.BackgroundColor = new iTextSharp.text.(255, 255, 255);
            document.PageSize.Rotate();

            //...definimos el autor del documento.
            document.AddAuthor("Programa Nacional de Ambientes Protegidos");

            //...el creador, que será el mismo eh!
            document.AddCreator("Programa Nacional de Ambientes Protegidos");

            //hacemos que se inserte la fecha de creación para el documento
            document.AddCreationDate();
            //...título

            document.AddTitle("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica");
            //... el asunto

            document.AddSubject("Catálogo de Productos y Servicios");
            //... palabras claves

            document.AddKeywords("pdf, PdfWriter; Documento; iTextSharp");

            //creamos un instancia del objeto escritor de documento
            MemoryStream myMemoryStream = new MemoryStream();
            PdfWriter writer = PdfWriter.GetInstance(document, myMemoryStream);
            


            //definimos la manera de inicialización de abierto del documento.
            //esto, hará que veamos al inicio, todas la páginas del documento
            //en la parte izquierda
            writer.ViewerPreferences = PdfWriter.PageModeUseThumbs;


            //con esto conseguiremos que el documento sea presentada de dos en dos 
            writer.ViewerPreferences = PdfWriter.PageLayoutTwoColumnLeft;


            //abrimos el documento para agregarle contenido
            document.Open();
            
            PdfContentByte cb = writer.DirectContent;
            ColumnText EmpresaDatosC = new ColumnText(cb);
            //bool perfil2 = false;
            Random random = new Random();
            int coordenadax = 10;
            int pageN = writer.PageNumber;
            String text = pageN.ToString();
            ColumnText numeroPagina = new ColumnText(cb);

            //agregar imagen fittacori
            System.Drawing.Image imagenFittacori1 = System.Drawing.Image.FromHbitmap(Properties.Resources.fittacori.GetHbitmap());
            iTextSharp.text.Image imagenFittacori = iTextSharp.text.Image.GetInstance(imagenFittacori1, System.Drawing.Imaging.ImageFormat.Png);
            imagenFittacori.Alignment = Image.ALIGN_LEFT;

            //agregar imagen fittacori2
            System.Drawing.Image imagenFittacori2 = System.Drawing.Image.FromHbitmap(Properties.Resources.fitlogo.GetHbitmap());
            iTextSharp.text.Image imagenFittacori3 = iTextSharp.text.Image.GetInstance(imagenFittacori2, System.Drawing.Imaging.ImageFormat.Png);
            imagenFittacori3.SetAbsolutePosition(200f, 730f);

            //agregar imagen tec

            System.Drawing.Image imagenTEC1 = System.Drawing.Image.FromHbitmap(Properties.Resources.imagenTec.GetHbitmap());
            iTextSharp.text.Image imagenTEC = iTextSharp.text.Image.GetInstance(imagenTEC1, System.Drawing.Imaging.ImageFormat.Png);
            imagenTEC.SetAbsolutePosition(200f, 680f);

            //agregar imagen sector agro

            System.Drawing.Image imagenAgro = System.Drawing.Image.FromHbitmap(Properties.Resources.sectorAgro.GetHbitmap());
            iTextSharp.text.Image imagenAgro1 = iTextSharp.text.Image.GetInstance(imagenAgro, System.Drawing.Imaging.ImageFormat.Png);
            imagenAgro1.SetAbsolutePosition(340f, 720f);

            //agregar imagen mag

            System.Drawing.Image imagenMag1 = System.Drawing.Image.FromHbitmap(Properties.Resources.mag.GetHbitmap());
            iTextSharp.text.Image imagenMag = iTextSharp.text.Image.GetInstance(imagenMag1, System.Drawing.Imaging.ImageFormat.Png);
            imagenMag.SetAbsolutePosition(470f, 700f);

            //agregar titulo de documento
            System.Drawing.Image imagenTitulo1 = System.Drawing.Image.FromHbitmap(Properties.Resources.tituloCatalogo.GetHbitmap());
            iTextSharp.text.Image imagenTitulo = iTextSharp.text.Image.GetInstance(imagenTitulo1, System.Drawing.Imaging.ImageFormat.Png);
            imagenTitulo.SetAbsolutePosition(100f, 550f);

            //fuente del documento
            //creamos la fuente
            iTextSharp.text.Font myfont = new iTextSharp.text.Font(
            FontFactory.GetFont(FontFactory.HELVETICA, 12, iTextSharp.text.Font.ITALIC));

            //agregamos el parrafo de introduccion

            
            ColumnText ct = new ColumnText(cb);
            ct.SetSimpleColumn(new Phrase(new Chunk("Este catálogo le ofrece una lista de empresas asociadas con las producción de agrícola protegida en Costa Rica. Entre los datos que va a encontrar aquí están: el perfil de la empresa, los proyectos que ha realizado, insumos y servicios a los que se dedica, equipamiento e implementación; y por último producción y poscosecha.", FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.ITALIC))),
                               66, 490, 530, 36, 25, Element.ALIGN_MIDDLE);
            ct.Go();

            //agregar titulo de documento
            System.Drawing.Image imagenFrutas1 = System.Drawing.Image.FromHbitmap(Properties.Resources.hoy71.GetHbitmap());
            iTextSharp.text.Image imagenFrutas = iTextSharp.text.Image.GetInstance(imagenFrutas1, System.Drawing.Imaging.ImageFormat.Png);
            imagenFrutas.SetAbsolutePosition(0f, 0f);

            document.Add(imagenFittacori);
            document.Add(imagenFittacori3);
            document.Add(imagenTEC);
            document.Add(imagenAgro1);
            document.Add(imagenMag);
            document.Add(imagenTitulo);
            document.Add(imagenFrutas);

            DataTable tablaTodos = new DataTable();
            tablaTodos = listaTodos.SeleccionarTodosTodos();

            document.NewPage();
            ColumnText header = new ColumnText(cb);
            header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                               20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
            header.Go();
           
            coordenadax = 10;
            for (int n = 0; n <= 10; n++)
            {
                if (n == 5)
                {
                    pageN = writer.PageNumber;
                    text = pageN.ToString();
                    numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                      550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                    numeroPagina.Go();
                }
                int numeroImagen = random.Next(0, 9);
                Image imagenFruta = imagenesPequeñas[numeroImagen];
                imagenFruta.SetAbsolutePosition(coordenadax, 10);

                document.Add(imagenFruta);
                coordenadax = coordenadax + 60;
            }

            //titulo indice
            ColumnText indice = new ColumnText(cb);
            indice.SetSimpleColumn(new Phrase(new Chunk("Índice", FontFactory.GetFont(FontFactory.HELVETICA, 26, Font.BOLD))),
                               250, 750, 400, 100, 25, Element.ALIGN_MIDDLE);
            indice.Go();
            //SE ESCRIBE EL INDICE
            List<List<string>> listaIndice = new List<List<string>>();
            listaIndice = crearIndice(tablaTodos);
            int dondeEmpieza = 3;
            dondeEmpieza = (listaIndice[0].Count / 20);
            if (dondeEmpieza < 1)
            {
                dondeEmpieza = 3;
            }
            else
            {
                dondeEmpieza = dondeEmpieza + 2;
            }
            int index = 0;
            int xx = 50;
            int yy = 700;
            
            for (int uu = 0; uu < listaIndice[0].Count(); uu++)
            {
                if (index < 30)
                {

                    ColumnText nombreEmpresaE = new ColumnText(cb);
                    float numeroProyecto = (float.Parse(listaIndice[1][uu]) / (float)2) + ((float)(float)1 / (float)2);
                    nombreEmpresaE.SetSimpleColumn(new Phrase(new Chunk(dondeEmpieza.ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))),
                                               xx, yy, 400, 100, 10, Element.ALIGN_MIDDLE);
                    nombreEmpresaE.Go();
                    int numeroProyectoI = (int)numeroProyecto;
                    dondeEmpieza = dondeEmpieza + 5 + numeroProyectoI;
                    xx = 200;
                    nombreEmpresaE.SetSimpleColumn(new Phrase(new Chunk(listaIndice[0][uu], FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD))),
                                               xx, yy, 400, 100, 10, Element.ALIGN_MIDDLE);
                    nombreEmpresaE.Go();
                    yy = yy - 20;
                    xx = 50;

                    index++;
                }
                else
                {
                    document.NewPage();
                    header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                       20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                    header.Go();

                    coordenadax = 10;
                    for (int n = 0; n <= 10; n++)
                    {
                        if (n == 5)
                        {
                            pageN = writer.PageNumber;
                            text = pageN.ToString();
                            numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                              550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                            numeroPagina.Go();
                        }
                        int numeroImagen = random.Next(0, 9);
                        Image imagenFruta = imagenesPequeñas[numeroImagen];
                        imagenFruta.SetAbsolutePosition(coordenadax, 10);

                        document.Add(imagenFruta);
                        coordenadax = coordenadax + 60;
                    }
                     xx = 50;
                     yy = 770;
                    index = 0;
                    
                }
            }

            List<List<string>> listaDesmembrada = new List<List<string>>();
            bool entroIgual = false;
            int numeroIndicePrincipal = 0;

            //desmembrar tabla de lista todos}
            if (tablaTodos.Rows.Count == 1)
            {
                listaDesmembrada = new List<List<string>>();
                listaDesmembrada.Add(ImportarRow(tablaTodos.Rows[0]));
                entroIgual = false;
                ImprimirEmpresaProyecto(listaDesmembrada, document, cb, writer, entroIgual);
            }
            else
            {
                for (int u = 0; u < tablaTodos.Rows.Count; u++)
                {
                    if (u < tablaTodos.Rows.Count - 1)
                    {

                        if (tablaTodos.Rows[u][0].ToString().Equals(tablaTodos.Rows[u + 1][0].ToString()))
                        {
                            listaDesmembrada.Add(ImportarRow(tablaTodos.Rows[u]));
                            entroIgual = true;
                            numeroIndicePrincipal++;
                         }
                        else
                        {
                            if (entroIgual)
                            {
                                listaDesmembrada.Add(ImportarRow(tablaTodos.Rows[u + 1]));
                                numeroIndicePrincipal = 0;

                                ImprimirEmpresaProyecto(listaDesmembrada, document, cb, writer, entroIgual);
                                 entroIgual = false;
                                listaDesmembrada = new List<List<string>>();
                            }
                            else
                            {
                                listaDesmembrada = new List<List<string>>();
                                listaDesmembrada.Add(ImportarRow(tablaTodos.Rows[u]));
                                entroIgual = false;
                                ImprimirEmpresaProyecto(listaDesmembrada, document, cb, writer, entroIgual);
                                listaDesmembrada = new List<List<string>>();


                            }//fin de if de la 

                        }
                    }
                    else
                    {
                        if (tablaTodos.Rows[u][0].ToString().Equals(tablaTodos.Rows[u - 1][0].ToString()))
                        {
                            listaDesmembrada.Add(ImportarRow(tablaTodos.Rows[u]));
                            numeroIndicePrincipal++;
                            entroIgual = true;
                            ImprimirEmpresaProyecto(listaDesmembrada, document, cb, writer, entroIgual);
                        }
                        else
                        {
                            listaDesmembrada = new List<List<string>>();
                            listaDesmembrada.Add(ImportarRow(tablaTodos.Rows[u]));
                            entroIgual = false;
                            ImprimirEmpresaProyecto(listaDesmembrada, document, cb, writer, entroIgual);

                        }
                        //hace lo de abajo

                    }
                }
            }
            
            document.Close();

            byte[] content = myMemoryStream.ToArray();
            //Write the file content directly to the HTTP content output stream.    
            HttpContext.Current.Response.BinaryWrite(content);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.End();
        }
        public void ImprimirEmpresaProyecto(List<List<string>> tablaTodos, Document document, PdfContentByte cb, PdfWriter writer, bool estaIgual)
        {
            string EmpresaDatos = "";
            ColumnText EmpresaDatosC = new ColumnText(cb);
            //bool perfil2 = false;
            Random random = new Random();
            int coordenadax = 10;
            int pageN = writer.PageNumber;
            String text = pageN.ToString();
            ColumnText numeroPagina = new ColumnText(cb);
            List<string> listaPerfil = new List<string>();
            List<string> listaAmbito = new List<string>();
            List<string> listaInsumo = new List<string>();
            List<string> listaEquipamiento = new List<string>();
            List<string> listaImplementacion = new List<string>();
            List<string> listaPoscosecha = new List<string>();
            List<string> listaProduccion = new List<string>();

            if (!estaIgual)
            {
                for (int i = 0; i < tablaTodos.Count; i++)
                {
                    int PuntoYTexto = 660;
                    int PuntoYBarra = 0;
                    int PuntoXTexto = 50;


                    //NUEVA PAGINA, PAGINA INDICE
                    document.NewPage();

                    if (i == 0)
                    {//titulo lilta empresas
                        ColumnText TituloListaEmpresas = new ColumnText(cb);
                        TituloListaEmpresas.SetSimpleColumn(new Phrase(new Chunk("Lista de Empresas", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                           50, 700, 400, 100, 25, Element.ALIGN_MIDDLE);
                        TituloListaEmpresas.Go();
                    }

                    ColumnText header = new ColumnText(cb);
                    header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                       20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                    header.Go();
                    int numeroImagenHeader = random.Next(0, 7);
                    Image imagenHeader = imagenesHeader[numeroImagenHeader];
                    imagenHeader.SetAbsolutePosition(380, 660);
                    document.Add(imagenHeader);


                    coordenadax = 10;
                    for (int n = 0; n <= 10; n++)
                    {
                        if (n == 5)
                        {
                            pageN = writer.PageNumber;
                            text = pageN.ToString();
                            numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                              550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                            numeroPagina.Go();
                        }
                        int numeroImagen = random.Next(0, 9);
                        Image imagenFruta = imagenesPequeñas[numeroImagen];
                        imagenFruta.SetAbsolutePosition(coordenadax, 10);

                        document.Add(imagenFruta);
                        coordenadax = coordenadax + 60;
                    }


                    for (int y = 0; y < tablaTodos[i].Count; y++)
                    {

                        if ((y > 10) && (y < 24))
                        {
                            if (tablaTodos[i][y].Equals("1"))
                            {
                                switch (y)
                                {
                                    case 11:
                                        {
                                            listaPerfil.Add("Cuenta con bodegas centrales");
                                            break;
                                        }
                                    case 12:
                                        {
                                            listaPerfil.Add("Cuenta con catálogos de productos");
                                            break;
                                        }
                                    case 13:
                                        {
                                            listaPerfil.Add("Cuenta con distribuidores autorizados en Costa Rica");
                                            break;
                                        }
                                    case 14:
                                        {
                                            listaPerfil.Add("Cuenta con fuerza de ventas");
                                            break;
                                        }
                                    case 15:
                                        {
                                            listaPerfil.Add("Cuenta con inventario en " + tablaTodos[i][y + 1].ToString() + " días de entrega");
                                            break;
                                        }
                                    case 17:
                                        {
                                            listaPerfil.Add("Cuenta con profesionales inscritos en colegios");
                                            break;
                                        }
                                    case 18:
                                        {
                                            listaPerfil.Add("Importador directo");
                                            break;
                                        }
                                    case 19:
                                        {
                                            listaPerfil.Add("Representante directo de las casas comerciales");
                                            break;
                                        }
                                    case 20:
                                        {
                                            listaPerfil.Add("Servicios específicos");
                                            break;
                                        }
                                    case 21:
                                        {
                                            listaPerfil.Add("Solo distribuidor");
                                            break;
                                        }
                                    case 22:
                                        {
                                            listaPerfil.Add("Subcontrata servicios");
                                            break;
                                        }
                                }
                            }
                        }

                        if ((listaPerfil.Count != 0) && (y == 24))
                        {

                            if (tablaTodos[i][23].Count() > 1)
                            {
                                listaPerfil.Add("Otro: " + tablaTodos[i][23].ToString());
                            }
                            for (int h = 0; h < listaPerfil.Count; h++)
                            {
                                if (h < 6)
                                {
                                    PuntoYTexto = PuntoYTexto - 33;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPerfil[h], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 300, 0, 25, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                    if (h == 5)
                                    {
                                        PuntoYTexto = 270;
                                        PuntoXTexto = 170;
                                    }
                                }
                                else
                                {

                                    PuntoYTexto = PuntoYTexto - 33;
                                    PuntoXTexto = PuntoXTexto + 115;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPerfil[h], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    PuntoXTexto = PuntoXTexto - 115;
                                }
                            }
                        }


                        //caseI(i, y, tablaTodos, document, cb, writer, PuntoYTexto, PuntoXTexto, PuntoYBarra, EmpresaDatosC, header, pageN, coordenadax, numeroPagina, random);
                        switch (y)
                        {
                            case 1:
                                {
                                    PuntoYBarra = PuntoYTexto - 60;
                                    System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barra.GetHbitmap());
                                    iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                    imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                    document.Add(imagenBarra);


                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos + ":", FontFactory.GetFont(FontFactory.HELVETICA, 20, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 600, 600, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    PuntoYTexto = PuntoYTexto - 20;
                                    break;
                                }
                            case 2:
                                {
                                    PuntoXTexto = PuntoXTexto + 7;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 20, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 600, 600, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    PuntoYTexto = PuntoYTexto + 20;
                                    break;

                                }
                            case 3:
                                {
                                    PuntoXTexto = PuntoXTexto - 7;
                                    PuntoYTexto = PuntoYTexto - 70;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Teléfono: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    PuntoXTexto = PuntoXTexto + 120;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    break;
                                }
                            case 4:
                                {
                                    PuntoXTexto = PuntoXTexto + 100;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Fax: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                               PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    PuntoXTexto = PuntoXTexto + 60;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    break;
                                }
                            case 5:
                                {
                                    PuntoXTexto = PuntoXTexto - 280;
                                    PuntoYTexto = PuntoYTexto - 40;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Correo electrónico: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                               PuntoXTexto, PuntoYTexto, 160, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    PuntoXTexto = PuntoXTexto + 120;
                                    PuntoYTexto = PuntoYTexto - 25;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    break;
                                }
                            case 6:
                                {
                                    PuntoXTexto = PuntoXTexto - 120;
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Ubicada en: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    PuntoXTexto = PuntoXTexto + 120;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    break;
                                }
                            case 7:
                                {
                                    PuntoXTexto = PuntoXTexto - 120;
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Nombre del gerente y/o representante: ", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 170, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    PuntoXTexto = PuntoXTexto + 120;
                                    PuntoYTexto = PuntoYTexto - 50;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    break;
                                }
                            case 8:
                                {
                                    PuntoXTexto = PuntoXTexto - 120;
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Nombre del gerente técnico: ", FontFactory.GetFont(FontFactory.HELVETICA, 15, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 170, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    PuntoXTexto = PuntoXTexto + 120;
                                    PuntoYTexto = PuntoYTexto - 25;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    break;
                                }
                            case 9:
                                {
                                    PuntoXTexto = PuntoXTexto - 120;
                                    PuntoYTexto = PuntoYTexto - 40;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Página web: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 200, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    PuntoXTexto = PuntoXTexto + 120;
                                    EmpresaDatos = tablaTodos[i][y].ToString();
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    break;
                                }
                            case 10:
                                {
                                    PuntoYBarra = PuntoYTexto - 90;
                                    System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraPerfil.GetHbitmap());
                                    iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                    imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                    document.Add(imagenBarra);

                                    PuntoYTexto = PuntoYTexto - 50;
                                    PuntoXTexto = PuntoXTexto + 60;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Perfil de la Empresa", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    PuntoXTexto = 20;
                                    break;
                                }
                            //case 10 idEmpresa
                            //del 11 al 23 son de perfil

                            //25 = IDempresa, empiezan los proyectos
                            case 25:
                                {
                                    PuntoYTexto = 660;
                                    PuntoYBarra = 700;
                                    PuntoXTexto = 50;
                                    document.NewPage();
                                    header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                      20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                                    header.Go();
                                    /* numeroImagenHeader = random.Next(0, 7);
                                     imagenHeader = imagenesHeader[numeroImagenHeader];
                                     imagenHeader.SetAbsolutePosition(380, 640);
                                     document.Add(imagenHeader);

                                     */
                                    coordenadax = 10;
                                    for (int n = 0; n <= 10; n++)
                                    {
                                        if (n == 5)
                                        {
                                            pageN = writer.PageNumber;
                                            text = pageN.ToString();
                                            numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                              550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                            numeroPagina.Go();
                                        }
                                        int numeroImagen = random.Next(0, 9);
                                        Image imagenFruta = imagenesPequeñas[numeroImagen];
                                        imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                        document.Add(imagenFruta);
                                        coordenadax = coordenadax + 60;
                                    }


                                    System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraProyectos.GetHbitmap());
                                    iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                    imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                    document.Add(imagenBarra);

                                    PuntoYTexto = PuntoYTexto + 80;

                                    if (tablaTodos[i][y].ToString().Equals(""))
                                    {
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existente proyectos asociados con la empresa", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                             PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                        PuntoXTexto = 20;
                                        break;
                                    }
                                    else
                                    {
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Proyectos N°  1", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                  PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                        PuntoXTexto = 20;
                                        break;
                                    }
                                }
                            case 26:
                                {
                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 50;
                                        PuntoXTexto = PuntoXTexto + 180;

                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Ubicación ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 98;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();

                                        PuntoYTexto = PuntoYTexto - 30;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y + 1].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();

                                        PuntoYTexto = PuntoYTexto - 30;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y + 2].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();

                                    }
                                    break;
                                }
                            case 29:
                                {
                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 30;
                                        PuntoXTexto = PuntoXTexto - 55;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Área ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 55;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y].ToString() + " m2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                        PuntoXTexto = PuntoXTexto + 60;
                                    }
                                    break;
                                }
                            case 30:
                                {
                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 30;
                                        PuntoXTexto = PuntoXTexto - 135;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Cultivo ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 72;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                    }
                                    break;
                                }
                            case 31:
                                {
                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 30;
                                        PuntoXTexto = PuntoXTexto - 155;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Mercado Destino ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 155;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                    }
                                    break;
                                }
                            case 32:
                                {

                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 30;
                                        PuntoXTexto = PuntoXTexto - 160;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Nivel Tecnológico ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 160;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                    }
                                    break;

                                }
                            case 33:
                                {
                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 30;
                                        PuntoXTexto = PuntoXTexto - 180;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("¿Es posible visitarlo? ", FontFactory.GetFont(FontFactory.HELVETICA, 17, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 185;
                                        if (tablaTodos[i][y].ToString().Equals("0"))
                                        {
                                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                            EmpresaDatosC.Go();
                                        }
                                        else
                                        {
                                            if (tablaTodos[i][y].ToString().Equals("1"))
                                            {
                                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Sí", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                EmpresaDatosC.Go();
                                            }
                                        }


                                    }
                                    break;
                                }
                            case 34:
                                {
                                    if (tablaTodos[i][25].ToString().Equals(""))
                                    {
                                    }
                                    else
                                    {
                                        PuntoYTexto = PuntoYTexto - 30;
                                        PuntoXTexto = PuntoXTexto - 83;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Objetivo ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();


                                        PuntoXTexto = PuntoXTexto + 82;
                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][y].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                        EmpresaDatosC.Go();
                                    }
                                    break;
                                }
                            /*AMBITO DE TRABAJO - INSUMOS Y SERVICIOS*/
                            //33 idinsumosservicios

                            case 35:
                                {
                                    PuntoYTexto = 660;
                                    PuntoYBarra = 700;
                                    PuntoXTexto = 50;
                                    document.NewPage();
                                    header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                      20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                                    header.Go();
                                    coordenadax = 10;
                                    for (int n = 0; n <= 10; n++)
                                    {
                                        if (n == 5)
                                        {
                                            pageN = writer.PageNumber;
                                            text = pageN.ToString();
                                            numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                              550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                            numeroPagina.Go();
                                        }
                                        int numeroImagen = random.Next(0, 9);
                                        Image imagenFruta = imagenesPequeñas[numeroImagen];
                                        imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                        document.Add(imagenFruta);
                                        coordenadax = coordenadax + 60;
                                    }


                                    System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraInsumosServicios.GetHbitmap());
                                    iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                    imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                    document.Add(imagenBarra);

                                    PuntoYTexto = PuntoYBarra + 40;

                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Ámbito de Trabajo", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                  PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();
                                    PuntoXTexto = 20;
                                    break;

                                }
                        }
                        if ((y > 36) && (y < 40))
                        {
                            if (tablaTodos[i][y] == "1")
                            {
                                switch (y)
                                {
                                    case 37:
                                        {
                                            listaAmbito.Add("Venta de servicios");
                                            break;
                                        }
                                    case 38:
                                        {
                                            listaAmbito.Add("Venta de insumos y materiales");
                                            break;
                                        }
                                }
                            }
                        }
                        if ((listaAmbito.Count > 0) && (y == 40))
                        {
                            if ((tablaTodos[i][39] != "") && (tablaTodos[i][39] != "0"))
                            {
                                listaAmbito.Add("Otro: " + tablaTodos[i][39]);
                            }
                            for (int l = 0; l < listaAmbito.Count; l++)
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaAmbito[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 25, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                            }
                        }
                        else
                        {
                            if ((listaAmbito.Count == 0) && (y == 40))
                            {
                                PuntoYTexto = PuntoYTexto - 90;
                                PuntoXTexto = PuntoXTexto + 150;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe ámbito de trabajo asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 150;
                                PuntoYTexto = PuntoYTexto + 90;
                            }
                        }
                        if (y == 41)
                        {
                            PuntoYBarra = PuntoYTexto - 200;
                            System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraInsumo.GetHbitmap());
                            iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                            imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                            document.Add(imagenBarra);

                            PuntoYTexto = PuntoYBarra + 40;
                            PuntoXTexto = PuntoXTexto + 30;

                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Insumos", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = 20;
                        }
                        if ((y > 42) && (y < 77))
                        {
                            if (tablaTodos[i][y] == "1")
                            {
                                switch (y)
                                {
                                    case 43:
                                        {
                                            listaInsumo.Add("Abastecimiento de energía");
                                            break;
                                        }
                                    case 44:
                                        {
                                            listaInsumo.Add("Banca y finanzas");
                                            break;
                                        }
                                    case 45:
                                        {
                                            listaInsumo.Add("Capacitación");
                                            break;
                                        }
                                    case 46:
                                        {
                                            listaInsumo.Add("Gestión de mercados");
                                            break;
                                        }
                                    case 47:
                                        {
                                            listaInsumo.Add("Impacto Ambiental");
                                            break;
                                        }
                                    case 48:
                                        {
                                            listaInsumo.Add("Inspección y supervisión de proyectos");
                                            break;
                                        }
                                    case 49:
                                        {
                                            listaInsumo.Add("Manejo de desechos de la actividad productiva");
                                            break;
                                        }
                                    case 50:
                                        {
                                            listaInsumo.Add("Mercados");
                                            break;
                                        }
                                    case 51:
                                        {
                                            listaInsumo.Add("Planificación de trabajo y producción");
                                            break;
                                        }
                                    case 52:
                                        {
                                            listaInsumo.Add("Poscosecha");
                                            break;
                                        }
                                    case 53:
                                        {
                                            listaInsumo.Add("Producción");
                                            break;
                                        }
                                    case 54:
                                        {
                                            listaInsumo.Add("Sanidad de cultivos");
                                            break;
                                        }
                                    case 55:
                                        {
                                            listaInsumo.Add("Sistemas de riego, nutrición y drenaje");
                                            break;
                                        }

                                    case 59:
                                        {
                                            listaInsumo.Add("Asuntos financieros");
                                            break;
                                        }
                                    case 60:
                                        {
                                            listaInsumo.Add("Asuntos jurídicos");
                                            break;
                                        }
                                    case 61:
                                        {
                                            listaInsumo.Add("Asuntos logísticos");
                                            break;
                                        }
                                    case 62:
                                        {
                                            listaInsumo.Add("Diseño o construcción de estructuras");
                                            break;
                                        }
                                    case 63:
                                        {
                                            listaInsumo.Add("Diseño y seguimiento de proyectos");
                                            break;
                                        }
                                    case 65:
                                        {
                                            listaInsumo.Add("Estudios de captación, almacenamiento y manejo de agua");
                                            break;
                                        }
                                    case 66:
                                        {
                                            listaInsumo.Add("Estudios de factibilidad");
                                            break;
                                        }
                                    case 68:
                                        {
                                            listaInsumo.Add("Insumos agrícolas");
                                            break;
                                        }
                                    case 69:
                                        {
                                            listaInsumo.Add("Materiales para construcción (estructuras)");
                                            break;
                                        }
                                    case 70:
                                        {
                                            listaInsumo.Add("Materiales para construcción (complementarios)");
                                            break;
                                        }
                                    case 71:
                                        {
                                            listaInsumo.Add("Seguros");
                                            break;
                                        }
                                    case 72:
                                        {
                                            listaInsumo.Add("Seguridad Laboral");
                                            break;
                                        }
                                    case 74:
                                        {
                                            listaInsumo.Add("Servicios de evaluación y mantenimiento de equipos");
                                            break;
                                        }
                                    case 75:
                                        {
                                            listaInsumo.Add("Servicios de evaluación y mantenimiento de estructuras");
                                            break;
                                        }
                                    case 76:
                                        {
                                            listaInsumo.Add("Servicios de laboratorio");
                                            break;
                                        }
                                }
                            }
                        }
                        if ((listaInsumo.Count > 0) && (y == 77))
                        {
                            if ((tablaTodos[i][56] != "") && (tablaTodos[i][56] != "0"))
                            {
                                listaInsumo.Add("Otro " + tablaTodos[i][56]);
                            }

                            PuntoYTexto = PuntoYTexto - 10;
                            
                            for (int l = 0; l < listaInsumo.Count; l++)
                            {
                                if (l < 13)
                                {
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaInsumo[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                    if (l == 12)
                                    {
                                        PuntoYTexto = 470;
                                        PuntoXTexto = 300;
                                    }
                                }
                                else
                                {
                                    PuntoYTexto = PuntoYTexto - 33;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaInsumo[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                }
                            }
                        }
                        else
                        {
                            if ((listaInsumo.Count == 0) && (y == 77))
                            {
                                PuntoYTexto = PuntoYTexto - 100;
                                PuntoXTexto = PuntoXTexto + 150;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe insumos asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 150;
                                PuntoYTexto = PuntoYTexto + 100;
                            }
                        }
                        if (y == 78)
                        {

                            PuntoYTexto = 660;
                            PuntoYBarra = 700;
                            PuntoXTexto = 50;
                            document.NewPage();
                            header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                              20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                            header.Go();
                            coordenadax = 10;
                            for (int n = 0; n <= 10; n++)
                            {
                                if (n == 5)
                                {
                                    pageN = writer.PageNumber;
                                    text = pageN.ToString();
                                    numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                      550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                    numeroPagina.Go();
                                }
                                int numeroImagen = random.Next(0, 9);
                                Image imagenFruta = imagenesPequeñas[numeroImagen];
                                imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                document.Add(imagenFruta);
                                coordenadax = coordenadax + 60;
                            }


                            System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraEquipamiento.GetHbitmap());
                            iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                            imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                            document.Add(imagenBarra);

                            PuntoYTexto = PuntoYBarra + 40;

                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Equipamiento en general", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = 20;
                        }
                        if ((y > 78) && (y < 126))
                        {
                            if (tablaTodos[i][y] == "1")
                            {
                                switch (y)
                                {
                                    case 79:
                                        {
                                            listaEquipamiento.Add("Abanicos y ventiladores");
                                            break;
                                        }
                                    case 80:
                                        {
                                            listaEquipamiento.Add("Anclajes y similares");
                                            break;
                                        }
                                    case 81:
                                        {
                                            listaEquipamiento.Add("Cables tensores y de soporte");
                                            break;
                                        }
                                    case 82:
                                        {
                                            listaEquipamiento.Add("Canaletas y macetas para cultivos");
                                            break;
                                        }
                                    case 83:
                                        {
                                            listaEquipamiento.Add("Cobertores de piso");
                                            break;
                                        }
                                    case 84:
                                        {
                                            listaEquipamiento.Add("Cómputo y programas informáticos específicos");
                                            break;
                                        }
                                    case 85:
                                        {
                                            listaEquipamiento.Add("Emisores de CO2");
                                            break;
                                        }
                                    case 86:
                                        {
                                            listaEquipamiento.Add("Estaciones meteorológicas fijas");
                                            break;
                                        }
                                    case 87:
                                        {
                                            listaEquipamiento.Add("Estructura para soporte vertical de los cultivos");
                                            break;
                                        }
                                    case 88:
                                        {
                                            listaEquipamiento.Add("Geomembranas");
                                            break;
                                        }
                                    case 89:
                                        {
                                            listaEquipamiento.Add("Humedecimiento del ambiente");
                                            break;
                                        }
                                    case 90:
                                        {
                                            listaEquipamiento.Add("Iluminación interna");
                                            break;
                                        }
                                    case 91:
                                        {
                                            listaEquipamiento.Add("Motores y barras de transmisión");
                                            break;
                                        }
                                    case 92:
                                        {
                                            listaEquipamiento.Add("Nebulizadores");
                                            break;
                                        }
                                    case 93:
                                        {
                                            listaEquipamiento.Add("Otro equipo científico especializado");
                                            break;
                                        }
                                    case 94:
                                        {
                                            listaEquipamiento.Add("Sujetadores de materiales de cerramiento");
                                            break;
                                        }
                                    case 95:
                                        {
                                            listaEquipamiento.Add("Sustratos");
                                            break;
                                        }
                                    case 96:
                                        {
                                            listaEquipamiento.Add("Tanques y reservorios para agua");
                                            break;
                                        }

                                    case 99:
                                        {
                                            listaEquipamiento.Add("Bandeja para cultivos");
                                            break;
                                        }
                                    /*case 100:
                                        {
                                            listaEquipamiento.Add("Bandejas, macetas y similares");
                                            break;
                                        }*/
                                    case 102:
                                        {
                                            listaEquipamiento.Add("Equipos para bombeo de aguas");
                                            break;
                                        }
                                    case 103:
                                        {
                                            listaEquipamiento.Add("Equipos para control de automatismos");
                                            break;
                                        }
                                    case 104:
                                        {
                                            listaEquipamiento.Add("Equipos para monitoreo de agua y aire");
                                            break;
                                        }
                                    case 105:
                                        {
                                            listaEquipamiento.Add("Equipos para monitoreo y combate de plagas");
                                            break;
                                        }
                                    case 106:
                                        {
                                            listaEquipamiento.Add("Equipos para  salud y seguridad ocupacional");
                                            break;
                                        }
                                    case 107:
                                        {
                                            listaEquipamiento.Add("Equipos portátiles para variables ambientales");
                                            break;
                                        }
                                    case 108:
                                        {
                                            listaEquipamiento.Add("Equipos poscosecha y gestión de calidad");
                                            break;
                                        }
                                    case 109:
                                        {
                                            listaEquipamiento.Add("Equipos y suministros para riego y ferti irrigación");
                                            break;
                                        }
                                    case 111:
                                        {
                                            listaEquipamiento.Add("Mallas anti-aves");
                                            break;
                                        }
                                    case 112:
                                        {
                                            listaEquipamiento.Add("Mallas anti-insectos");
                                            break;
                                        }
                                    case 113:
                                        {
                                            listaEquipamiento.Add("Mallas para sombreo");
                                            break;
                                        }
                                    case 115:
                                        {
                                            listaEquipamiento.Add("Materiales para construcción (madera y otros)");
                                            break;
                                        }
                                    case 116:
                                        {
                                            listaEquipamiento.Add("Materiales para construcción (metal)");
                                            break;
                                        }
                                    case 118:
                                        {
                                            listaEquipamiento.Add("Pantallas corta-vientos");
                                            break;
                                        }
                                    case 119:
                                        {
                                            listaEquipamiento.Add("Pantallas reflectivas y refractivas");
                                            break;
                                        }
                                    case 121:
                                        {
                                            listaEquipamiento.Add("Plásticos claros");
                                            break;
                                        }
                                    case 122:
                                        {
                                            listaEquipamiento.Add("Plásticos pigmentados");
                                            break;
                                        }
                                    case 124:
                                        {
                                            listaEquipamiento.Add("Sistemas de recirculación de soluciones nutricionales");
                                            break;
                                        }
                                    case 125:
                                        {
                                            listaEquipamiento.Add("Sistemas de calefacción o refrigeración del invernadero");
                                            break;
                                        }
                                }
                            }
                        }//if equipamiento
                        if ((listaEquipamiento.Count > 0) && (y == 125))
                        {
                            if ((tablaTodos[i][97] != "") && (tablaTodos[i][97] != "0"))
                            {
                                listaEquipamiento.Add("Otro: " + tablaTodos[i][97]);
                            }

                            PuntoYTexto = PuntoYTexto - 10;
                            for (int l = 0; l < listaEquipamiento.Count; l++)
                            {
                                if (l < 22)
                                {
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaEquipamiento[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                    if (l == 21)
                                    {
                                        PuntoYTexto = 730;
                                        PuntoXTexto = 300;
                                    }
                                }
                                else
                                {
                                    PuntoYTexto = PuntoYTexto - 33;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaEquipamiento[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                }
                            }
                        }
                        else
                        {
                            if ((listaEquipamiento.Count == 0) && (y == 125))
                            {
                                PuntoYTexto = PuntoYTexto - 100;
                                PuntoXTexto = PuntoXTexto + 150;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe equipamientos asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 150;
                                PuntoYTexto = PuntoYTexto + 100;
                            }
                        }
                        if (y == 126)
                        {

                            PuntoYTexto = 660;
                            PuntoYBarra = 700;
                            PuntoXTexto = 50;
                            document.NewPage();
                            header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                              20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                            header.Go();
                            coordenadax = 10;
                            for (int n = 0; n <= 10; n++)
                            {
                                if (n == 5)
                                {
                                    pageN = writer.PageNumber;
                                    text = pageN.ToString();
                                    numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                      550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                    numeroPagina.Go();
                                }
                                int numeroImagen = random.Next(0, 9);
                                Image imagenFruta = imagenesPequeñas[numeroImagen];
                                imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                document.Add(imagenFruta);
                                coordenadax = coordenadax + 60;
                            }


                            System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraImplementacion.GetHbitmap());
                            iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                            imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                            document.Add(imagenBarra);

                            PuntoYTexto = PuntoYBarra + 40;

                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Implementación", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = 20;
                        }
                        if ((y > 127) && (y < 135))
                        {
                            if (tablaTodos[i][y] == "1")
                            {
                                switch (y)
                                {
                                    case 128:
                                        {
                                            listaImplementacion.Add("Almacenes fiscales");
                                            break;
                                        }
                                    case 129:
                                        {
                                            listaImplementacion.Add("Construcción");
                                            break;
                                        }
                                    case 130:
                                        {
                                            listaImplementacion.Add("Movimiento de tierras y canalización de aguas");
                                            break;
                                        }
                                    case 131:
                                        {
                                            listaImplementacion.Add("Permisos");
                                            break;
                                        }
                                    case 132:
                                        {
                                            listaImplementacion.Add("Topografía");
                                            break;
                                        }
                                    case 133:
                                        {
                                            listaImplementacion.Add("Transporte");
                                            break;
                                        }

                                }
                            }//if 
                        }
                        if ((listaImplementacion.Count > 0) && (y == 134))
                        {
                            if ((tablaTodos[i][y] != "") && (tablaTodos[i][y] != "0"))
                            {
                                listaImplementacion.Add("Otro: " + tablaTodos[i][134]);
                            }

                            PuntoYTexto = PuntoYTexto - 10;
                            for (int l = 0; l < listaImplementacion.Count; l++)
                            {
                                if (l < 4)
                                {
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaImplementacion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                    if (l == 3)
                                    {
                                        PuntoYTexto = 730;
                                        PuntoXTexto = 300;
                                    }
                                }
                                else
                                {
                                    PuntoYTexto = PuntoYTexto - 33;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaImplementacion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                }
                            }
                        }
                        else
                        {
                            if ((listaImplementacion.Count == 0) && (y == 134))
                            {
                                PuntoYTexto = PuntoYTexto - 100;
                                PuntoXTexto = PuntoXTexto + 150;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe implementación asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 150;
                                PuntoYTexto = PuntoYTexto + 100;
                            }
                        }
                        if (y == 135)
                        {
                            PuntoYBarra = 400;
                            PuntoXTexto = 50;

                            System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraPoscosecha.GetHbitmap());
                            iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                            imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                            document.Add(imagenBarra);

                            PuntoYTexto = PuntoYBarra + 40;

                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Poscosecha", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = 20;
                        }
                        if ((y > 136) && (y < 155))
                        {
                            if (tablaTodos[i][y] == "1")
                            {
                                switch (y)
                                {
                                    case 137:
                                        {
                                            listaPoscosecha.Add("Calibradores");
                                            break;
                                        }
                                    case 138:
                                        {
                                            listaPoscosecha.Add("Carretillas de transporte interno del producto");
                                            break;
                                        }
                                    case 139:
                                        {
                                            listaPoscosecha.Add("Desinfectantes para lavado de productos");
                                            break;
                                        }
                                    case 140:
                                        {
                                            listaPoscosecha.Add("Equipo científico para poscosecha");
                                            break;
                                        }
                                    case 141:
                                        {
                                            listaPoscosecha.Add("Etiquetas y sellos de empresa");
                                            break;
                                        }
                                    case 142:
                                        {
                                            listaPoscosecha.Add("Guías de cosecha");
                                            break;
                                        }
                                    case 143:
                                        {
                                            listaPoscosecha.Add("Láminas termo-sensibles para envoltura");
                                            break;
                                        }
                                    case 144:
                                        {
                                            listaPoscosecha.Add("Líneas de proceso");
                                            break;
                                        }
                                    case 145:
                                        {
                                            listaPoscosecha.Add("Material para empaque y embalaje");
                                            break;
                                        }
                                    case 146:
                                        {
                                            listaPoscosecha.Add("Mesas de trabajo");
                                            break;
                                        }
                                    case 147:
                                        {
                                            listaPoscosecha.Add("Productos para lavado y desinfección para equipos e instalaciones");
                                            break;
                                        }
                                    case 148:
                                        {
                                            listaPoscosecha.Add("Químicos para acondicionamiento de producto terminado");
                                            break;
                                        }
                                    case 149:
                                        {
                                            listaPoscosecha.Add("Refrigeración o equipo para frío");
                                            break;
                                        }
                                    case 150:
                                        {
                                            listaPoscosecha.Add("Uniformes, botas, delantales");
                                            break;
                                        }

                                    case 153:
                                        {
                                            listaPoscosecha.Add("Cajas para empaque");
                                            break;
                                        }
                                    case 154:
                                        {
                                            listaPoscosecha.Add("Cajas plásticas para cosechas  y manipulación  de producto");
                                            break;
                                        }
                                }
                            }
                        }
                        if ((listaPoscosecha.Count > 0) && (y == 154))
                        {
                            if ((tablaTodos[i][151] != "") && (tablaTodos[i][151] != "0"))
                            {
                                listaPoscosecha.Add("Otro: " + tablaTodos[i][151]);
                            }

                            PuntoYTexto = PuntoYTexto - 10;
                            for (int l = 0; l < listaPoscosecha.Count; l++)
                            {
                                if (l < 9)
                                {
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPoscosecha[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                    if (l == 8)
                                    {
                                        PuntoYTexto = 430;
                                        PuntoXTexto = 300;
                                    }
                                }
                                else
                                {
                                    PuntoYTexto = PuntoYTexto - 33;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPoscosecha[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                }
                            }
                        }
                        else
                        {
                            if ((listaPoscosecha.Count == 0) && (y == 154))
                            {
                                PuntoYTexto = PuntoYTexto - 100;
                                PuntoXTexto = PuntoXTexto + 150;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe poscosecha asociada con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 150;
                                PuntoYTexto = PuntoYTexto + 100;
                            }
                        }
                        if (y == 155)
                        {

                            PuntoYTexto = 660;
                            PuntoYBarra = 700;
                            PuntoXTexto = 50;
                            document.NewPage();
                            header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                              20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                            header.Go();
                            coordenadax = 10;
                            for (int n = 0; n <= 10; n++)
                            {
                                if (n == 5)
                                {
                                    pageN = writer.PageNumber;
                                    text = pageN.ToString();
                                    numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                      550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                    numeroPagina.Go();
                                }
                                int numeroImagen = random.Next(0, 9);
                                Image imagenFruta = imagenesPequeñas[numeroImagen];
                                imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                document.Add(imagenFruta);
                                coordenadax = coordenadax + 60;
                            }


                            System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraProduccion.GetHbitmap());
                            iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                            imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                            document.Add(imagenBarra);

                            PuntoYTexto = PuntoYBarra + 40;

                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Producción", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = 20;
                        }

                        if ((y > 155) && (y < 181))
                        {
                            if (tablaTodos[i][y] == "1")
                            {
                                switch (y)
                                {
                                    case 157:
                                        {
                                            listaProduccion.Add("Carritos elevadores, escaleras para cosecha, poda o amarre");
                                            break;
                                        }
                                    case 158:
                                        {
                                            listaProduccion.Add("Estimulación de crecimiento y productos similares");
                                            break;
                                        }
                                    case 159:
                                        {
                                            listaProduccion.Add("Fertilizantes granulados o líquidos para suelo/foliar");
                                            break;
                                        }
                                    case 160:
                                        {
                                            listaProduccion.Add("Herramientas para cosecha - tijeras, cuchillos, guantes");
                                            break;
                                        }
                                    case 161:
                                        {
                                            listaProduccion.Add("Mallas para tutorado de cultivos");
                                            break;
                                        }
                                    case 162:
                                        {
                                            listaProduccion.Add("Plántulas o esquejes");
                                            break;
                                        }
                                    case 163:
                                        {
                                            listaProduccion.Add("Prensas, guías y amarras para plantas");
                                            break;
                                        }
                                    case 164:
                                        {
                                            listaProduccion.Add("Sales nutricionales para procesos hidropónicos");
                                            break;
                                        }
                                    case 165:
                                        {
                                            listaProduccion.Add("Semillas");
                                            break;
                                        }
                                    case 168:
                                        {
                                            listaProduccion.Add("Equipo de suministro de agua potable para el personal");
                                            break;
                                        }
                                    case 169:
                                        {
                                            listaProduccion.Add("Equipo para aplicación de productos fitosanitarios");
                                            break;
                                        }
                                    case 170:
                                        {
                                            listaProduccion.Add("Equipo y herramientas para la siembra");
                                            break;
                                        }
                                    case 171:
                                        {
                                            listaProduccion.Add("Equipo y herramientas para poda, deshija y operaciones afines");
                                            break;
                                        }
                                    case 172:
                                        {
                                            listaProduccion.Add("Equipos para polinización");
                                            break;
                                        }
                                    case 174:
                                        {
                                            listaProduccion.Add("Químicos fitosanitarios 'orgánicos'");
                                            break;
                                        }
                                    case 175:
                                        {
                                            listaProduccion.Add("Químicos fitosanitarios de síntesis");
                                            break;
                                        }
                                    case 176:
                                        {
                                            listaProduccion.Add("Químicos para limpieza de sistemas de ferti-irrigación");
                                            break;
                                        }
                                    case 178:
                                        {
                                            listaProduccion.Add("Soluciones estabilizadoras de pH");
                                            break;
                                        }
                                    case 179:
                                        {
                                            listaProduccion.Add("Soluciones nutritivas preparadas");
                                            break;
                                        }
                                    case 180:
                                        {
                                            listaProduccion.Add("Soluciones para tratamiento sanitario de agua agrícola");
                                            break;
                                        }
                                }
                            }
                        }
                        if ((listaProduccion.Count > 0) && (y == 180))
                        {
                            if ((tablaTodos[i][166] != "") && (tablaTodos[i][166] != "0"))
                            {
                                listaProduccion.Add("Otro: " + tablaTodos[i][166]);
                            }

                            PuntoYTexto = PuntoYTexto - 10;
                            for (int l = 0; l < listaProduccion.Count; l++)
                            {
                                if (l < 10)
                                {
                                    PuntoYTexto = PuntoYTexto - 30;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaProduccion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                    if (l == 9)
                                    {
                                        PuntoYTexto = 730;
                                        PuntoXTexto = 300;
                                    }
                                }
                                else
                                {
                                    PuntoYTexto = PuntoYTexto - 33;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaProduccion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                                  PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                    EmpresaDatosC.Go();
                                }
                            }
                        }
                        else
                        {
                            if ((listaProduccion.Count == 0) && (y == 180))
                            {
                                PuntoYTexto = PuntoYTexto - 100;
                                PuntoXTexto = PuntoXTexto + 150;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe producción asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 150;
                                PuntoYTexto = PuntoYTexto + 100;
                            }
                        }
                    }
                }
            }
            //hay más de un proyecto
            else
            {
                int PuntoYTexto = 660;
                int PuntoYBarra = 0;
                int PuntoXTexto = 50;
                int numeroProyectos = 0;

                //NUEVA PAGINA, PAGINA INDICE
                document.NewPage();
                int i = 0;
                if (i == 0)
                {//titulo lilta empresas
                    ColumnText TituloListaEmpresas = new ColumnText(cb);
                    TituloListaEmpresas.SetSimpleColumn(new Phrase(new Chunk("Lista de Empresas", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                       50, 700, 400, 100, 25, Element.ALIGN_MIDDLE);
                    TituloListaEmpresas.Go();
                }

                ColumnText header = new ColumnText(cb);
                header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                   20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                header.Go();
                int numeroImagenHeader = random.Next(0, 7);
                Image imagenHeader = imagenesHeader[numeroImagenHeader];
                imagenHeader.SetAbsolutePosition(380, 660);
                document.Add(imagenHeader);


                coordenadax = 10;
                for (int n = 0; n <= 10; n++)
                {
                    if (n == 5)
                    {
                        pageN = writer.PageNumber;
                        text = pageN.ToString();
                        numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                          550, 80, 600, 10, 25, Element.ALIGN_LEFT);
                        numeroPagina.Go();
                    }
                    int numeroImagen = random.Next(0, 9);
                    Image imagenFruta = imagenesPequeñas[numeroImagen];
                    imagenFruta.SetAbsolutePosition(coordenadax, 10);

                    document.Add(imagenFruta);
                    coordenadax = coordenadax + 60;
                }



                /*INSERTAR LA SECCION DEL PERFIL DE LA EMPRESA*/

                for (int y = 0; y < tablaTodos[i].Count; y++)
                {
                    if ((y > 10) && (y < 24))
                    {
                        if (tablaTodos[i][y].Equals("1"))
                        {
                            switch (y)
                            {
                                case 11:
                                    {
                                        listaPerfil.Add("Cuenta con bodegas centrales");
                                        break;
                                    }
                                case 12:
                                    {
                                        listaPerfil.Add("Cuenta con catálogos de productos");
                                        break;
                                    }
                                case 13:
                                    {
                                        listaPerfil.Add("Cuenta con distribuidores autorizados en Costa Rica");
                                        break;
                                    }
                                case 14:
                                    {
                                        listaPerfil.Add("Cuenta con fuerza de ventas");
                                        break;
                                    }
                                case 15:
                                    {
                                        listaPerfil.Add("Cuenta con inventario en " + tablaTodos[i][y + 1].ToString() + " días de entrega");
                                        break;
                                    }
                                case 17:
                                    {
                                        listaPerfil.Add("Cuenta con profesionales inscritos en colegios");
                                        break;
                                    }
                                case 18:
                                    {
                                        listaPerfil.Add("Importador directo");
                                        break;
                                    }
                                case 19:
                                    {
                                        listaPerfil.Add("Representante directo de las casas comerciales");
                                        break;
                                    }
                                case 20:
                                    {
                                        listaPerfil.Add("Servicios específicos");
                                        break;
                                    }
                                case 21:
                                    {
                                        listaPerfil.Add("Solo distribuidor");
                                        break;
                                    }
                                case 22:
                                    {
                                        listaPerfil.Add("Subcontrata servicios");
                                        break;
                                    }
                            }
                        }
                    }

                    if ((listaPerfil.Count != 0) && (y == 24))
                    {

                        if (tablaTodos[i][23].Count() > 1)
                        {
                            listaPerfil.Add("Otro: " + tablaTodos[i][23].ToString());
                        }
                        PuntoYTexto = PuntoYTexto - 10;
                        for (int h = 0; h < listaPerfil.Count; h++)
                        {
                            if (h < 6)
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPerfil[h], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                if (h == 5)
                                {
                                    PuntoYTexto = 270;
                                    PuntoXTexto = 170;
                                }
                            }
                            else
                            {

                                PuntoYTexto = PuntoYTexto - 33;
                                PuntoXTexto = PuntoXTexto + 115;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPerfil[h], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 115;
                            }
                        }
                    }
                    else
                    {
                        if ((listaPerfil.Count == 0) && (y == 24))
                        {
                            {
                                PuntoYTexto = PuntoYTexto - 100;
                                PuntoXTexto = PuntoXTexto + 180;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe un perfil asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                              PuntoXTexto, PuntoYTexto, 500, 0, 15, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto - 180;
                                PuntoYTexto = PuntoYTexto + 100;
                            }
                        }
                    }
                    switch (y)
                    {
                        case 1:
                            {
                                PuntoYBarra = PuntoYTexto - 60;
                                System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barra.GetHbitmap());
                                iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                document.Add(imagenBarra);


                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos + ":", FontFactory.GetFont(FontFactory.HELVETICA, 20, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 600, 600, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto + 60;
                                break;
                            }
                        case 2:
                            {
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 20, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 600, 600, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                break;

                            }
                        case 3:
                            {
                                PuntoXTexto = PuntoXTexto - 60;
                                PuntoYTexto = PuntoYTexto - 70;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Teléfono: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                PuntoXTexto = PuntoXTexto + 120;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                break;
                            }
                        case 4:
                            {
                                PuntoXTexto = PuntoXTexto + 100;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Fax: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                           PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                PuntoXTexto = PuntoXTexto + 60;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                break;
                            }
                        case 5:
                            {
                                PuntoXTexto = PuntoXTexto - 280;
                                PuntoYTexto = PuntoYTexto - 40;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Correo electrónico: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                           PuntoXTexto, PuntoYTexto, 160, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = PuntoXTexto + 120;
                                PuntoYTexto = PuntoYTexto - 25;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                break;
                            }
                        case 6:
                            {
                                PuntoXTexto = PuntoXTexto - 120;
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Ubicada en: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                PuntoXTexto = PuntoXTexto + 120;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                break;
                            }
                        case 7:
                            {
                                PuntoXTexto = PuntoXTexto - 120;
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Nombre del gerente y/o representante: ", FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 170, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                PuntoXTexto = PuntoXTexto + 120;
                                PuntoYTexto = PuntoYTexto - 50;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                break;
                            }
                        case 8:
                            {
                                PuntoXTexto = PuntoXTexto - 120;
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Nombre del gerente técnico: ", FontFactory.GetFont(FontFactory.HELVETICA, 15, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 170, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                PuntoXTexto = PuntoXTexto + 120;
                                PuntoYTexto = PuntoYTexto - 25;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                break;
                            }
                        case 9:
                            {
                                PuntoXTexto = PuntoXTexto - 120;
                                PuntoYTexto = PuntoYTexto - 40;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Página web: ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 200, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();

                                PuntoXTexto = PuntoXTexto + 120;
                                EmpresaDatos = tablaTodos[i][y].ToString();
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(EmpresaDatos, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                break;
                            }
                        case 10:
                            {
                                PuntoYBarra = PuntoYTexto - 90;
                                System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraPerfil.GetHbitmap());
                                iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                document.Add(imagenBarra);

                                PuntoYTexto = PuntoYTexto - 50;
                                PuntoXTexto = PuntoXTexto + 60;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Perfil de la Empresa", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                PuntoXTexto = 20;
                                break;
                            }
                        //case 10 idEmpresa
                        //CASE 11 AL 24 PERFIL


                        //25 = IDempresa, empiezan los proyectos
                        case 25:
                            {

                                for (int l = 0; l < tablaTodos.Count; l++)
                                {
                                    if (numeroProyectos == 0)
                                    {
                                        PuntoYTexto = 660;
                                        PuntoYBarra = 700;
                                        PuntoXTexto = 50;
                                        document.NewPage();
                                        header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                      20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                                        header.Go();
                                        coordenadax = 10;
                                        for (int n = 0; n <= 10; n++)
                                        {
                                            int numeroImagen = random.Next(0, 9);
                                            Image imagenFruta = imagenesPequeñas[numeroImagen];
                                            imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                            document.Add(imagenFruta);
                                            coordenadax = coordenadax + 60;
                                        }

                                        pageN = writer.PageNumber;
                                        text = pageN.ToString();
                                        numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                          550, 80, 380, 10, 25, Element.ALIGN_LEFT);
                                        numeroPagina.Go();

                                    }

                                    else
                                    {

                                        PuntoYTexto = 330;
                                        PuntoXTexto = 50;
                                    }
                                    System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraProyectos.GetHbitmap());
                                    iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                    imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                    document.Add(imagenBarra);
                                    PuntoYBarra = PuntoYBarra - 330;

                                    PuntoYTexto = PuntoYTexto + 80;
                                    //PuntoXTexto = PuntoXTexto + 120;
                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Proyecto N°  " + (l + 1), FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                    EmpresaDatosC.Go();

                                    //datos de proyecto
                                    for (int j = 26; j < tablaTodos[l].Count; j++)
                                    {
                                        switch (j)
                                        {
                                            case 26:
                                                {

                                                    PuntoYTexto = PuntoYTexto - 50;
                                                    PuntoXTexto = PuntoXTexto + 180;

                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Ubicación ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 98;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();

                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j + 1].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();

                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();
                                                    break;
                                                }
                                            case 29:
                                                {

                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    PuntoXTexto = PuntoXTexto - 55;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Área ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 55;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[i][j].ToString() + " m2", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();
                                                    PuntoXTexto = PuntoXTexto + 60;

                                                    break;
                                                }
                                            case 30:
                                                {
                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    PuntoXTexto = PuntoXTexto - 135;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Cultivo ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 72;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();

                                                    break;
                                                }
                                            case 31:
                                                {
                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    PuntoXTexto = PuntoXTexto - 155;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Mercado Destino ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 155;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();

                                                    break;
                                                }
                                            case 32:
                                                {


                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    PuntoXTexto = PuntoXTexto - 160;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Nivel Tecnológico ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 160;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();
                                                    break;

                                                }
                                            case 33:
                                                {

                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    PuntoXTexto = PuntoXTexto - 180;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("¿Es posible visitarlo? ", FontFactory.GetFont(FontFactory.HELVETICA, 17, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 185;
                                                    if (tablaTodos[l][j].ToString().Equals("0"))
                                                    {
                                                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                        EmpresaDatosC.Go();
                                                    }
                                                    else
                                                    {
                                                        if (tablaTodos[l][j].ToString().Equals("1"))
                                                        {
                                                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Sí", FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                            EmpresaDatosC.Go();
                                                        }
                                                    }



                                                    break;
                                                }
                                            case 34:
                                                {

                                                    PuntoYTexto = PuntoYTexto - 30;
                                                    PuntoXTexto = PuntoXTexto - 83;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Objetivo ", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                                          PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();


                                                    PuntoXTexto = PuntoXTexto + 82;
                                                    EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(tablaTodos[l][j].ToString(), FontFactory.GetFont(FontFactory.HELVETICA, 14, Font.NORMAL))),
                                                              PuntoXTexto, PuntoYTexto, 600, 0, 25, Element.ALIGN_MIDDLE);
                                                    EmpresaDatosC.Go();

                                                    break;
                                                }
                                        }


                                    }
                                    if (numeroProyectos == 1)
                                    {
                                        numeroProyectos = 0;

                                    }
                                    else
                                    {
                                        numeroProyectos++;
                                    }
                                }
                                break;
                            }

                        /*AMBITO DE TRABAJO - INSUMOS Y SERVICIOS*/
                        //33 idinsumosservicios

                        case 35:
                            {
                                PuntoYTexto = 660;
                                PuntoYBarra = 700;
                                PuntoXTexto = 50;
                                document.NewPage();
                                header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                                  20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                                header.Go();
                                coordenadax = 10;
                                for (int n = 0; n <= 10; n++)
                                {
                                    if (n == 5)
                                    {
                                        pageN = writer.PageNumber;
                                        text = pageN.ToString();
                                        numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                          550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                        numeroPagina.Go();
                                    }
                                    int numeroImagen = random.Next(0, 9);
                                    Image imagenFruta = imagenesPequeñas[numeroImagen];
                                    imagenFruta.SetAbsolutePosition(coordenadax, 10);

                                    document.Add(imagenFruta);
                                    coordenadax = coordenadax + 60;
                                }


                                System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraInsumosServicios.GetHbitmap());
                                iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                                imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                                document.Add(imagenBarra);

                                PuntoYTexto = PuntoYBarra + 40;

                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Ámbito de Trabajo", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                              PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                                EmpresaDatosC.Go();
                                PuntoXTexto = 20;
                                break;

                            }
                    }
                    if ((y > 36) && (y < 40))
                    {
                        if (tablaTodos[i][y] == "1")
                        {
                            switch (y)
                            {
                                case 37:
                                    {
                                        listaAmbito.Add("Venta de servicios");
                                        break;
                                    }
                                case 38:
                                    {
                                        listaAmbito.Add("Venta de insumos y materiales");
                                        break;
                                    }
                            }
                        }
                    }
                    if ((listaAmbito.Count > 0) && (y == 40))
                    {
                        if ((tablaTodos[i][39] != "") && (tablaTodos[i][39] != "0"))
                        {
                            listaAmbito.Add("Otro: " + tablaTodos[i][39]);
                        }
                        for (int l = 0; l < listaAmbito.Count; l++)
                        {
                            PuntoYTexto = PuntoYTexto - 33;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaAmbito[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                          PuntoXTexto, PuntoYTexto, 300, 0, 25, Element.ALIGN_LEFT);
                            EmpresaDatosC.Go();
                        }
                    }
                    else
                    {
                        if ((listaAmbito.Count ==0) && (y == 39))
                        {
                            PuntoYTexto = PuntoYTexto - 90;
                            PuntoXTexto = PuntoXTexto + 150;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe ámbito de trabajo asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = PuntoXTexto - 150;
                            PuntoYTexto = PuntoYTexto + 90;
                        }
                    }
                    if (y == 41)
                    {
                        PuntoYBarra = PuntoYTexto - 200;
                        System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraInsumo.GetHbitmap());
                        iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                        imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                        document.Add(imagenBarra);

                        PuntoYTexto = PuntoYBarra + 40;
                        PuntoXTexto = PuntoXTexto + 30;

                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Insumos", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                      PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                        EmpresaDatosC.Go();
                        PuntoXTexto = 20;
                    }
                    if ((y > 42) && (y < 77))
                    {
                        if (tablaTodos[i][y] == "1")
                        {
                            switch (y)
                            {
                                case 43:
                                    {
                                        listaInsumo.Add("Abastecimiento de energía");
                                        break;
                                    }
                                case 44:
                                    {
                                        listaInsumo.Add("Banca y finanzas");
                                        break;
                                    }
                                case 45:
                                    {
                                        listaInsumo.Add("Capacitación");
                                        break;
                                    }
                                case 46:
                                    {
                                        listaInsumo.Add("Gestión de mercados");
                                        break;
                                    }
                                case 47:
                                    {
                                        listaInsumo.Add("Impacto Ambiental");
                                        break;
                                    }
                                case 48:
                                    {
                                        listaInsumo.Add("Inspección y supervisión de proyectos");
                                        break;
                                    }
                                case 49:
                                    {
                                        listaInsumo.Add("Manejo de desechos de la actividad productiva");
                                        break;
                                    }
                                case 50:
                                    {
                                        listaInsumo.Add("Mercados");
                                        break;
                                    }
                                case 51:
                                    {
                                        listaInsumo.Add("Planificación de trabajo y producción");
                                        break;
                                    }
                                case 52:
                                    {
                                        listaInsumo.Add("Poscosecha");
                                        break;
                                    }
                                case 53:
                                    {
                                        listaInsumo.Add("Producción");
                                        break;
                                    }
                                case 54:
                                    {
                                        listaInsumo.Add("Sanidad de cultivos");
                                        break;
                                    }
                                case 55:
                                    {
                                        listaInsumo.Add("Sistemas de riego, nutrición y drenaje");
                                        break;
                                    }

                                case 59:
                                    {
                                        listaInsumo.Add("Asuntos financieros");
                                        break;
                                    }
                                case 60:
                                    {
                                        listaInsumo.Add("Asuntos jurídicos");
                                        break;
                                    }
                                case 61:
                                    {
                                        listaInsumo.Add("Asuntos logísticos");
                                        break;
                                    }
                                case 62:
                                    {
                                        listaInsumo.Add("Diseño o construcción de estructuras");
                                        break;
                                    }
                                case 63:
                                    {
                                        listaInsumo.Add("Diseño y seguimiento de proyectos");
                                        break;
                                    }
                                case 65:
                                    {
                                        listaInsumo.Add("Estudios de captación, almacenamiento y manejo de agua");
                                        break;
                                    }
                                case 66:
                                    {
                                        listaInsumo.Add("Estudios de factibilidad");
                                        break;
                                    }
                                case 68:
                                    {
                                        listaInsumo.Add("Insumos agrícolas");
                                        break;
                                    }
                                case 69:
                                    {
                                        listaInsumo.Add("Materiales para construcción (estructuras)");
                                        break;
                                    }
                                case 70:
                                    {
                                        listaInsumo.Add("Materiales para construcción (complementarios)");
                                        break;
                                    }
                                case 71:
                                    {
                                        listaInsumo.Add("Seguros");
                                        break;
                                    }
                                case 72:
                                    {
                                        listaInsumo.Add("Seguridad Laboral");
                                        break;
                                    }
                                case 74:
                                    {
                                        listaInsumo.Add("Servicios de evaluación y mantenimiento de equipos");
                                        break;
                                    }
                                case 75:
                                    {
                                        listaInsumo.Add("Servicios de evaluación y mantenimiento de estructuras");
                                        break;
                                    }
                                case 76:
                                    {
                                        listaInsumo.Add("Servicios de laboratorio");
                                        break;
                                    }
                            }
                        }
                    }
                    if ((listaInsumo.Count > 0) && (y == 77))
                    {
                        if ((tablaTodos[i][56] != "") && (tablaTodos[i][56] != "0"))
                        {
                            listaInsumo.Add("Otro " + tablaTodos[i][56]);
                        }

                        PuntoYTexto = PuntoYTexto - 10;
                        
                        for (int l = 0; l < listaInsumo.Count; l++)
                        {
                            if (l < 13)
                            {
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaInsumo[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                if (l == 12)
                                {
                                    PuntoYTexto = 470;
                                    PuntoXTexto = 300;
                                }
                            }
                            else
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaInsumo[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                            }
                        }
                    }
                    else
                    {
                        if ((listaInsumo.Count == 0) && (y == 77))
                        {
                            PuntoYTexto = PuntoYTexto -100;
                            PuntoXTexto = PuntoXTexto + 150;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe insumos asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = PuntoXTexto - 150;
                            PuntoYTexto = PuntoYTexto + 100;
                        }
                    }
                    if (y == 78)
                    {

                        PuntoYTexto = 660;
                        PuntoYBarra = 700;
                        PuntoXTexto = 50;
                        document.NewPage();
                        header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                          20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                        header.Go();
                        coordenadax = 10;
                        for (int n = 0; n <= 10; n++)
                        {
                            if (n == 5)
                            {
                                pageN = writer.PageNumber;
                                text = pageN.ToString();
                                numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                  550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                numeroPagina.Go();
                            }
                            int numeroImagen = random.Next(0, 9);
                            Image imagenFruta = imagenesPequeñas[numeroImagen];
                            imagenFruta.SetAbsolutePosition(coordenadax, 10);

                            document.Add(imagenFruta);
                            coordenadax = coordenadax + 60;
                        }


                        System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraEquipamiento.GetHbitmap());
                        iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                        imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                        document.Add(imagenBarra);

                        PuntoYTexto = PuntoYBarra + 40;

                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Equipamiento en general", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                      PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                        EmpresaDatosC.Go();
                        PuntoXTexto = 20;
                    }
                    if ((y > 78) && (y < 126))
                    {
                        if (tablaTodos[i][y] == "1")
                        {
                            switch (y)
                            {
                                case 79:
                                    {
                                        listaEquipamiento.Add("Abanicos y ventiladores");
                                        break;
                                    }
                                case 80:
                                    {
                                        listaEquipamiento.Add("Anclajes y similares");
                                        break;
                                    }
                                case 81:
                                    {
                                        listaEquipamiento.Add("Cables tensores y de soporte");
                                        break;
                                    }
                                case 82:
                                    {
                                        listaEquipamiento.Add("Canaletas y macetas para cultivos");
                                        break;
                                    }
                                case 83:
                                    {
                                        listaEquipamiento.Add("Cobertores de piso");
                                        break;
                                    }
                                case 84:
                                    {
                                        listaEquipamiento.Add("Cómputo y programas informáticos específicos");
                                        break;
                                    }
                                case 85:
                                    {
                                        listaEquipamiento.Add("Emisores de CO2");
                                        break;
                                    }
                                case 86:
                                    {
                                        listaEquipamiento.Add("Estaciones meteorológicas fijas");
                                        break;
                                    }
                                case 87:
                                    {
                                        listaEquipamiento.Add("Estructura para soporte vertical de los cultivos");
                                        break;
                                    }
                                case 88:
                                    {
                                        listaEquipamiento.Add("Geomembranas");
                                        break;
                                    }
                                case 89:
                                    {
                                        listaEquipamiento.Add("Humedecimiento del ambiente");
                                        break;
                                    }
                                case 90:
                                    {
                                        listaEquipamiento.Add("Iluminación interna");
                                        break;
                                    }
                                case 91:
                                    {
                                        listaEquipamiento.Add("Motores y barras de transmisión");
                                        break;
                                    }
                                case 92:
                                    {
                                        listaEquipamiento.Add("Nebulizadores");
                                        break;
                                    }
                                case 93:
                                    {
                                        listaEquipamiento.Add("Otro equipo científico especializado");
                                        break;
                                    }
                                case 94:
                                    {
                                        listaEquipamiento.Add("Sujetadores de materiales de cerramiento");
                                        break;
                                    }
                                case 95:
                                    {
                                        listaEquipamiento.Add("Sustratos");
                                        break;
                                    }
                                case 96:
                                    {
                                        listaEquipamiento.Add("Tanques y reservorios para agua");
                                        break;
                                    }

                                case 99:
                                    {
                                        listaEquipamiento.Add("Bandeja para cultivos");
                                        break;
                                    }
                               /* case 100:
                                    {
                                        listaEquipamiento.Add("Bandejas, macetas y similares");
                                        break;
                                    }*/
                                case 102:
                                    {
                                        listaEquipamiento.Add("Equipos para bombeo de aguas");
                                        break;
                                    }
                                case 103:
                                    {
                                        listaEquipamiento.Add("Equipos para control de automatismos");
                                        break;
                                    }
                                case 104:
                                    {
                                        listaEquipamiento.Add("Equipos para monitoreo de agua y aire");
                                        break;
                                    }
                                case 105:
                                    {
                                        listaEquipamiento.Add("Equipos para monitoreo y combate de plagas");
                                        break;
                                    }
                                case 106:
                                    {
                                        listaEquipamiento.Add("Equipos para  salud y seguridad ocupacional");
                                        break;
                                    }
                                case 107:
                                    {
                                        listaEquipamiento.Add("Equipos portátiles para variables ambientales");
                                        break;
                                    }
                                case 108:
                                    {
                                        listaEquipamiento.Add("Equipos poscosecha y gestión de calidad");
                                        break;
                                    }
                                case 109:
                                    {
                                        listaEquipamiento.Add("Equipos y suministros para riego y ferti irrigación");
                                        break;
                                    }
                                case 111:
                                    {
                                        listaEquipamiento.Add("Mallas anti-aves");
                                        break;
                                    }
                                case 112:
                                    {
                                        listaEquipamiento.Add("Mallas anti-insectos");
                                        break;
                                    }
                                case 113:
                                    {
                                        listaEquipamiento.Add("Mallas para sombreo");
                                        break;
                                    }
                                case 115:
                                    {
                                        listaEquipamiento.Add("Materiales para construcción (madera y otros)");
                                        break;
                                    }
                                case 116:
                                    {
                                        listaEquipamiento.Add("Materiales para construcción (metal)");
                                        break;
                                    }
                                case 118:
                                    {
                                        listaEquipamiento.Add("Pantallas corta-vientos");
                                        break;
                                    }
                                case 119:
                                    {
                                        listaEquipamiento.Add("Pantallas reflectivas y refractivas");
                                        break;
                                    }
                                case 121:
                                    {
                                        listaEquipamiento.Add("Plásticos claros");
                                        break;
                                    }
                                case 122:
                                    {
                                        listaEquipamiento.Add("Plásticos pigmentados");
                                        break;
                                    }
                                case 124:
                                    {
                                        listaEquipamiento.Add("Sistemas de recirculación de soluciones nutricionales");
                                        break;
                                    }
                                case 125:
                                    {
                                        listaEquipamiento.Add("Sistemas de calefacción o refrigeración del invernadero");
                                        break;
                                    }
                            }
                        }
                    }//if equipamiento
                    if ((listaEquipamiento.Count > 0) && (y == 125))
                    {
                        if ((tablaTodos[i][98] != "") && (tablaTodos[i][98] != "0"))
                        {
                            listaEquipamiento.Add("Otro: " + tablaTodos[i][98]);
                        }

                        PuntoYTexto = PuntoYTexto - 10;
                        for (int l = 0; l < listaEquipamiento.Count; l++)
                        {
                            if (l < 22)
                            {
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaEquipamiento[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                if (l == 21)
                                {
                                    PuntoYTexto = 730;
                                    PuntoXTexto = 300;
                                }
                            }
                            else
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaEquipamiento[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                            }
                        }
                    }
                    else
                    {
                        if ((listaEquipamiento.Count == 0) && (y == 125))
                        {
                            PuntoYTexto = PuntoYTexto - 100;
                            PuntoXTexto = PuntoXTexto + 150;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe equipamientos asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = PuntoXTexto - 150;
                            PuntoYTexto = PuntoYTexto + 100;
                        }
                    }
                    if (y == 126)
                    {

                        PuntoYTexto = 660;
                        PuntoYBarra = 700;
                        PuntoXTexto = 50;
                        document.NewPage();
                        header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                          20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                        header.Go();
                        coordenadax = 10;
                        for (int n = 0; n <= 10; n++)
                        {
                            if (n == 5)
                            {
                                pageN = writer.PageNumber;
                                text = pageN.ToString();
                                numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                  550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                numeroPagina.Go();
                            }
                            int numeroImagen = random.Next(0, 9);
                            Image imagenFruta = imagenesPequeñas[numeroImagen];
                            imagenFruta.SetAbsolutePosition(coordenadax, 10);

                            document.Add(imagenFruta);
                            coordenadax = coordenadax + 60;
                        }


                        System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraImplementacion.GetHbitmap());
                        iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                        imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                        document.Add(imagenBarra);

                        PuntoYTexto = PuntoYBarra + 40;

                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Implementación", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                      PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                        EmpresaDatosC.Go();
                        PuntoXTexto = 20;
                    }
                    if ((y > 127) && (y < 135))
                    {
                        if (tablaTodos[i][y] == "1")
                        {
                            switch (y)
                            {
                                case 128:
                                    {
                                        listaImplementacion.Add("Almacenes fiscales");
                                        break;
                                    }
                                case 129:
                                    {
                                        listaImplementacion.Add("Construcción");
                                        break;
                                    }
                                case 130:
                                    {
                                        listaImplementacion.Add("Movimiento de tierras y canalización de aguas");
                                        break;
                                    }
                                case 131:
                                    {
                                        listaImplementacion.Add("Permisos");
                                        break;
                                    }
                                case 132:
                                    {
                                        listaImplementacion.Add("Topografía");
                                        break;
                                    }
                                case 133:
                                    {
                                        listaImplementacion.Add("Transporte");
                                        break;
                                    }

                            }
                        }//if 
                    }
                    if ((listaImplementacion.Count > 0) && (y == 134))
                    {
                        if ((tablaTodos[i][y] != "") && (tablaTodos[i][y] != "0"))
                        {
                            listaImplementacion.Add("Otro: " + tablaTodos[i][134]);
                        }

                        PuntoYTexto = PuntoYTexto - 10;
                        for (int l = 0; l < listaImplementacion.Count; l++)
                        {
                            if (l < 4)
                            {
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaImplementacion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                if (l == 3)
                                {
                                    PuntoYTexto = 730;
                                    PuntoXTexto = 300;
                                }
                            }
                            else
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaImplementacion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                            }
                        }
                    }
                    else
                    {
                        if ((listaImplementacion.Count == 0) && (y == 134))
                        {
                            PuntoYTexto = PuntoYTexto - 100;
                            PuntoXTexto = PuntoXTexto + 150;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe implementación asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = PuntoXTexto - 150;
                            PuntoYTexto = PuntoYTexto + 100;
                        }
                    }
                    if (y == 135)
                    {
                        PuntoYBarra = 400;
                        PuntoXTexto = 50;

                        System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraPoscosecha.GetHbitmap());
                        iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                        imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                        document.Add(imagenBarra);

                        PuntoYTexto = PuntoYBarra + 40;

                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Poscosecha", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                      PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                        EmpresaDatosC.Go();
                        PuntoXTexto = 20;
                    }
                    if ((y > 136) && (y < 155))
                    {
                        if (tablaTodos[i][y] == "1")
                        {
                            switch (y)
                            {
                                case 137:
                                    {
                                        listaPoscosecha.Add("Calibradores");
                                        break;
                                    }
                                case 138:
                                    {
                                        listaPoscosecha.Add("Carretillas de transporte interno del producto");
                                        break;
                                    }
                                case 139:
                                    {
                                        listaPoscosecha.Add("Desinfectantes para lavado de productos");
                                        break;
                                    }
                                case 140:
                                    {
                                        listaPoscosecha.Add("Equipo científico para poscosecha");
                                        break;
                                    }
                                case 141:
                                    {
                                        listaPoscosecha.Add("Etiquetas y sellos de empresa");
                                        break;
                                    }
                                case 142:
                                    {
                                        listaPoscosecha.Add("Guías de cosecha");
                                        break;
                                    }
                                case 143:
                                    {
                                        listaPoscosecha.Add("Láminas termo-sensibles para envoltura");
                                        break;
                                    }
                                case 144:
                                    {
                                        listaPoscosecha.Add("Líneas de proceso");
                                        break;
                                    }
                                case 145:
                                    {
                                        listaPoscosecha.Add("Material para empaque y embalaje");
                                        break;
                                    }
                                case 146:
                                    {
                                        listaPoscosecha.Add("Mesas de trabajo");
                                        break;
                                    }
                                case 147:
                                    {
                                        listaPoscosecha.Add("Productos para lavado y desinfección para equipos e instalaciones");
                                        break;
                                    }
                                case 148:
                                    {
                                        listaPoscosecha.Add("Químicos para acondicionamiento de producto terminado");
                                        break;
                                    }
                                case 149:
                                    {
                                        listaPoscosecha.Add("Refrigeración o equipo para frío");
                                        break;
                                    }
                                case 150:
                                    {
                                        listaPoscosecha.Add("Uniformes, botas, delantales");
                                        break;
                                    }

                                case 153:
                                    {
                                        listaPoscosecha.Add("Cajas para empaque");
                                        break;
                                    }
                                case 154:
                                    {
                                        listaPoscosecha.Add("Cajas plásticas para cosechas  y manipulación  de producto");
                                        break;
                                    }
                            }
                        }
                    }
                    if ((listaPoscosecha.Count > 0) && (y == 154))
                    {
                        if ((tablaTodos[i][151] != "") && (tablaTodos[i][151] != "0"))
                        {
                            listaPoscosecha.Add("Otro: " + tablaTodos[i][151]);
                        }

                        PuntoYTexto = PuntoYTexto - 10;
                        for (int l = 0; l < listaPoscosecha.Count; l++)
                        {
                            if (l < 9)
                            {
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPoscosecha[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                if (l == 8)
                                {
                                    PuntoYTexto = 430;
                                    PuntoXTexto = 300;
                                }
                            }
                            else
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaPoscosecha[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                            }
                        }
                    }
                    else
                    {
                        if ((listaPoscosecha.Count == 0)&& (y == 154))
                        {
                            PuntoYTexto = PuntoYTexto - 100;
                            PuntoXTexto = PuntoXTexto + 150;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe poscosecha asociada con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = PuntoXTexto - 150;
                            PuntoYTexto = PuntoYTexto + 100;
                        }
                    }
                    if (y == 155)
                    {

                        PuntoYTexto = 660;
                        PuntoYBarra = 700;
                        PuntoXTexto = 50;
                        document.NewPage();
                        header.SetSimpleColumn(new Phrase(new Chunk("Catálogo de Productos y Servicios para la Producción de Agrícola Protegida en Costa Rica", FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.ITALIC))),
                          20, 840, 500, 0, 25, Element.ALIGN_RIGHT);
                        header.Go();
                        coordenadax = 10;
                        for (int n = 0; n <= 10; n++)
                        {
                            if (n == 5)
                            {
                                pageN = writer.PageNumber;
                                text = pageN.ToString();
                                numeroPagina.SetSimpleColumn(new Phrase(new Chunk(text, FontFactory.GetFont(FontFactory.HELVETICA, 16, Font.ITALIC))),
                                                  550, 80, 600, 10, 25, Element.ALIGN_MIDDLE);
                                numeroPagina.Go();
                            }
                            int numeroImagen = random.Next(0, 9);
                            Image imagenFruta = imagenesPequeñas[numeroImagen];
                            imagenFruta.SetAbsolutePosition(coordenadax, 10);

                            document.Add(imagenFruta);
                            coordenadax = coordenadax + 60;
                        }


                        System.Drawing.Image imagenBarra1 = System.Drawing.Image.FromHbitmap(Properties.Resources.barraProduccion.GetHbitmap());
                        iTextSharp.text.Image imagenBarra = iTextSharp.text.Image.GetInstance(imagenBarra1, System.Drawing.Imaging.ImageFormat.Png);
                        imagenBarra.SetAbsolutePosition(30, PuntoYBarra);
                        document.Add(imagenBarra);

                        PuntoYTexto = PuntoYBarra + 40;

                        EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("Producción", FontFactory.GetFont(FontFactory.HELVETICA, 18, Font.BOLD))),
                                      PuntoXTexto, PuntoYTexto, 700, 0, 25, Element.ALIGN_MIDDLE);
                        EmpresaDatosC.Go();
                        PuntoXTexto = 20;
                    }

                    if ((y > 155) && (y < 181))
                    {
                        if (tablaTodos[i][y] == "1")
                        {
                            switch (y)
                            {
                                case 157:
                                    {
                                        listaProduccion.Add("Carritos elevadores, escaleras para cosecha, poda o amarre");
                                        break;
                                    }
                                case 158:
                                    {
                                        listaProduccion.Add("Estimulación de crecimiento y productos similares");
                                        break;
                                    }
                                case 159:
                                    {
                                        listaProduccion.Add("Fertilizantes granulados o líquidos para suelo/foliar");
                                        break;
                                    }
                                case 160:
                                    {
                                        listaProduccion.Add("Herramientas para cosecha - tijeras, cuchillos, guantes");
                                        break;
                                    }
                                case 161:
                                    {
                                        listaProduccion.Add("Mallas para tutorado de cultivos");
                                        break;
                                    }
                                case 162:
                                    {
                                        listaProduccion.Add("Plántulas o esquejes");
                                        break;
                                    }
                                case 163:
                                    {
                                        listaProduccion.Add("Prensas, guías y amarras para plantas");
                                        break;
                                    }
                                case 164:
                                    {
                                        listaProduccion.Add("Sales nutricionales para procesos hidropónicos");
                                        break;
                                    }
                                case 165:
                                    {
                                        listaProduccion.Add("Semillas");
                                        break;
                                    }
                                case 168:
                                    {
                                        listaProduccion.Add("Equipo de suministro de agua potable para el personal");
                                        break;
                                    }
                                case 169:
                                    {
                                        listaProduccion.Add("Equipo para aplicación de productos fitosanitarios");
                                        break;
                                    }
                                case 170:
                                    {
                                        listaProduccion.Add("Equipo y herramientas para la siembra");
                                        break;
                                    }
                                case 171:
                                    {
                                        listaProduccion.Add("Equipo y herramientas para poda, deshija y operaciones afines");
                                        break;
                                    }
                                case 172:
                                    {
                                        listaProduccion.Add("Equipos para polinización");
                                        break;
                                    }
                                case 174:
                                    {
                                        listaProduccion.Add("Químicos fitosanitarios 'orgánicos'");
                                        break;
                                    }
                                case 175:
                                    {
                                        listaProduccion.Add("Químicos fitosanitarios de síntesis");
                                        break;
                                    }
                                case 176:
                                    {
                                        listaProduccion.Add("Químicos para limpieza de sistemas de ferti-irrigación");
                                        break;
                                    }
                                case 178:
                                    {
                                        listaProduccion.Add("Soluciones estabilizadoras de pH");
                                        break;
                                    }
                                case 179:
                                    {
                                        listaProduccion.Add("Soluciones nutritivas preparadas");
                                        break;
                                    }
                                case 180:
                                    {
                                        listaProduccion.Add("Soluciones para tratamiento sanitario de agua agrícola");
                                        break;
                                    }
                            }
                        }
                    }
                    if ((listaProduccion.Count > 0) && (y == 180))
                    {
                        if ((tablaTodos[i][166] != "") && (tablaTodos[i][166] != "0"))
                        {
                            listaProduccion.Add("Otro: " + tablaTodos[i][166]);
                        }

                        PuntoYTexto = PuntoYTexto - 10;
                        for (int l = 0; l < listaProduccion.Count; l++)
                        {
                            if (l < 10)
                            {
                                PuntoYTexto = PuntoYTexto - 30;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaProduccion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 300, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                                if (l == 9)
                                {
                                    PuntoYTexto = 730;
                                    PuntoXTexto = 300;
                                }
                            }
                            else
                            {
                                PuntoYTexto = PuntoYTexto - 33;
                                EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk(listaProduccion[l], FontFactory.GetFont(FontFactory.HELVETICA, 12, Font.NORMAL))),
                                              PuntoXTexto, PuntoYTexto, 550, 0, 15, Element.ALIGN_LEFT);
                                EmpresaDatosC.Go();
                            }
                        }
                    }
                    else
                    {
                        if ((listaProduccion.Count == 0) && (y == 180))
                        {
                            PuntoYTexto = PuntoYTexto - 100;
                            PuntoXTexto = PuntoXTexto + 150;
                            EmpresaDatosC.SetSimpleColumn(new Phrase(new Chunk("No existe producción asociado con esta empresa", FontFactory.GetFont(FontFactory.HELVETICA, 13, Font.ITALIC))),
                                          PuntoXTexto, PuntoYTexto, 600, 0, 15, Element.ALIGN_MIDDLE);
                            EmpresaDatosC.Go();
                            PuntoXTexto = PuntoXTexto - 150;
                            PuntoYTexto = PuntoYTexto + 100;
                        }
                    }
                }
            }
        }
        

       
        public List<string> ImportarRow(DataRow fila)
        {
            List<string> resultado = new List<string>();
            
            for (int y = 0; y < fila.Table.Columns.Count; y++)
            {
                resultado.Add(fila[y].ToString());
            }
            
            return resultado;
        }

        
    }
}
